public class Test24 {
    public int maxTurbulenceSize(int[] arr) {
        int n = arr.length;
        int[] f= new int[n];
        int[] g = new int[n];
        int ret = 1;
        for(int i = 0;i < n;i++) f[i] = g[i] = 1;
        for(int i = 1;i < n;i++) {
            if(arr[i] < arr[i -1]) {
                f[i] = g[i - 1] + 1;
            }else if(arr[i] > arr[i - 1]) {
                g[i] = f[i - 1] + 1;
            }
            ret = Math.max(Math.max(ret,f[i]),g[i]);
        }
        return ret;

        // 自己写的
        // int n = arr.length;
        // if(n < 2) return n;
        // int[] dp = new int[n];
        // dp[0] = 1;
        // dp[1] = 2;
        // int ret = 0;
        // for(int i = 2;i < n;i++) {
        //     if(arr[i] > arr[i - 1] && arr[i - 1] < arr[i - 2]) {
        //         dp[i] = dp[i - 1] == 0 ? dp[i - 1] + 3 : dp[i - 1] + 1;
        //     }else if(arr[i] < arr[i - 1] && arr[i - 1] > arr[i - 2]) {
        //         dp[i] = dp[i - 1] == 0 ? dp[i - 1] + 3 : dp[i - 1] + 1;
        //     }
        //     ret = Math.max(ret,dp[i]);
        // }
        // if(ret == 0) {
        //     for(int i = 1;i < n;i++){
        //         if(arr[i] != arr[i - 1]) return 2;
        //     }
        //     return 1;
        // }
        // return ret;
    }

    public static void main(String[] args) {
        Test24 test24 = new Test24();
        int[] arr = {9,4,2,10,7,8,8,1,9};
        test24.maxTurbulenceSize(arr);
    }
}
